$(function () {
  var countdown = 0; // 倒计时计数器
  var timer = null; // 定时器

  // 开始倒计时
  function startCountdown($btn) {
    countdown = 60;
    $btn.prop('disabled', true); // 禁用按钮
    $btn.text(countdown + '秒后重试');
    
    timer = setInterval(function() {
      countdown--;
      if (countdown > 0) {
        $btn.text(countdown + '秒后重试');
      } else {
        // 倒计时结束
        clearInterval(timer);
        $btn.prop('disabled', false);
        $btn.text('发送验证码');
        countdown = 0;
      }
    }, 1000);
  }

  // 发送验证码按钮点击事件
  $('#captcha-btn').on("click", function(event) {
    event.preventDefault();
    
    var $this = $(this);
    
    // 如果正在倒计时中，不允许再次点击
    if (countdown > 0) {
      return;
    }

    // 获取邮箱
    var email = $("input[name='email']").val();
    var reg = /^\w+((.\w+)|(-\w+))@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+).[A-Za-z0-9]+$/;
    if (!email || !reg.test(email)) {
      alert("请输入正确格式的邮箱！");
      return;
    }

    // 发送请求
    zlajax.get({
      url: "/user/mail/captcha?mail=" + email
    }).done(function (result) {
      alert("验证码发送成功！请查收邮件");
      // 开始倒计时
      startCountdown($this);
    }).fail(function (error) {
      alert(error.message || "发送失败，请稍后重试");
    });
  });
});